<?php
/**
 * Service_Mail
 *
 * Класс Service_Mail осуществляет работу c эл. полчтой
 *
 * @author Егоров Александр <slamer@slamer.ru>
 * @author Дмитрий Кузьма <kouzma.d@gmail.com>
 * @version 1.0
 */

if ( ! defined( 'MAIL_CLASS_DEFINED' ) ) {
        define('MAIL_CLASS_DEFINED', 1 );

class Service_Mail {

  private $subject; //тема
  private $message; //сообщение
  private $to;  //получателm (например, Дмитрий Кузьма)
  private $cc;  //эл. почта получателя
  private $bcc; //копия письма
  private $replyTo; //эл. почта отправителя
  
  /**
   * Конструктор
   *
   * @param string $subject - тема
   * @param string $message - сообщение
   * @param mixed $toList - имя получателя (например, Дмитрий Кузьма)
   * @param mixed $ccList - эл. почта
   * @param mixed $bccList - копия письма
   * @param string $replyTo - эл. почта отправителя
   */
  function __construct($subject, $message, $toList, $ccList = 0, $bccList = 0, $replyTo = 0) {
    $this->replyTo = $replyTo;
    $this->subject = $subject;
    $this->message = $message;

    // set the To: recipient(s)
    if ( is_array($toList) ) {
            $this->to = join( $toList, "," );
    } else {
            $this->to = $toList;
    }

    // set the Cc: recipient(s)
    if ( is_array($ccList) && sizeof($ccList) ) {
            $this->cc = join( $ccList, "," );
    } elseif ( $ccList ) {
            $this->cc = $ccList;
    }

    // set the Bcc: recipient(s)
    if ( is_array($bccList) && sizeof($bccList) ) {
            $this->bcc = join( $bccList, "," );
    } elseif ( $bccList ) {
            $this->bcc = $bccList;
    }

  }

  /**
   * Метод отправляет сообщения по указанным адресам эл. почты
   *
   * @return unknown
   */
  function send () {
    //Создаем заголовки письма
    $this->headers = "From: Tyndr <noreply@tyndr.ru> \n";
    $this->headers .= 'Content-type: text/plain; charset=utf-8' . "\n";

    //Задаем адрес, по которому ожидаем ответ
    if ( $this->replyTo ) {
      $this->headers .= "Reply-To: " . $this->replyTo . "\n";
    }

    // Задаем получателей
    if ( $this->cc ) {
      $this->headers .= "Cc: " . $this->cc . "\n";
    }

    // Задаем скрытые копии
    if ( $this->bcc ) {
      $this->headers .= "Bcc: " . $this->bcc . "\n";
    }
    //Отправляем сообщение
    return mail ( $this->to, $this->subject, $this->message, $this->headers );
  }
}


}
?>